home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CAnimateThread.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  1.5 KB  |  75 lines

  1. class CAnimateThread implements Runnable {
  2.    private int m_nAnimObjectCount = 0;
  3.    private long m_lLoopStartTime = 0L;
  4.    private Thread m_AnimThread = null;
  5.    private CDrawObj[] m_AnimObject;
  6.  
  7.    public void RemoveAllAnimObjects() {
  8.       this.m_nAnimObjectCount = 0;
  9.    }
  10.  
  11.    public void AddAnimObject(CDrawObj var1) {
  12.       if (this.m_nAnimObjectCount <= 0) {
  13.          this.m_AnimObject = new CDrawObj[1];
  14.          this.m_AnimObject[0] = var1;
  15.          this.m_nAnimObjectCount = 1;
  16.          this.start();
  17.       } else {
  18.          CDrawObj[] var2 = new CDrawObj[this.m_nAnimObjectCount];
  19.          System.arraycopy(this.m_AnimObject, 0, var2, 0, this.m_nAnimObjectCount);
  20.          this.m_AnimObject = new CDrawObj[this.m_nAnimObjectCount + 1];
  21.          System.arraycopy(var2, 0, this.m_AnimObject, 0, this.m_nAnimObjectCount);
  22.          this.m_AnimObject[this.m_nAnimObjectCount] = var1;
  23.          ++this.m_nAnimObjectCount;
  24.       }
  25.    }
  26.  
  27.    public void RemoveAnimObject(CDrawObj var1) {
  28.       for(int var2 = 0; var2 < this.m_nAnimObjectCount; ++var2) {
  29.          if (this.m_AnimObject[var2] != null && (this.m_AnimObject[var2] == var1 || this.m_AnimObject[var2].GetIconObject().GetMoveObject() == var1)) {
  30.             this.m_AnimObject[var2] = null;
  31.          }
  32.       }
  33.  
  34.    }
  35.  
  36.    private void RemoveAnimObject(int var1) {
  37.       if (var1 < this.m_nAnimObjectCount && (this.m_nAnimObjectCount += -1) > 0) {
  38.          CDrawObj[] var2 = new CDrawObj[this.m_nAnimObjectCount];
  39.          System.arraycopy(this.m_AnimObject, 0, var2, 0, var1);
  40.          System.arraycopy(this.m_AnimObject, var1 + 1, var2, var1, this.m_nAnimObjectCount - var1);
  41.          this.m_AnimObject = new CDrawObj[this.m_nAnimObjectCount];
  42.          System.arraycopy(var2, 0, this.m_AnimObject, 0, this.m_nAnimObjectCount);
  43.       }
  44.  
  45.    }
  46.  
  47.    private void start() {
  48.       this.m_AnimThread = new Thread(this);
  49.       this.m_AnimThread.start();
  50.    }
  51.  
  52.    public void run() {
  53.       boolean var1 = false;
  54.  
  55.       for(long var2 = -1L; this.m_AnimThread != null && this.m_nAnimObjectCount > 0; var2 = System.currentTimeMillis() - this.m_lLoopStartTime) {
  56.          this.m_lLoopStartTime = System.currentTimeMillis();
  57.  
  58.          for(int var4 = 0; var4 < this.m_nAnimObjectCount; ++var4) {
  59.             if (this.m_AnimObject[var4] == null) {
  60.                this.RemoveAnimObject(var4);
  61.                --var4;
  62.             } else if (!this.m_AnimObject[var4].m_pIconObject.DoAnimation(this.m_AnimObject[var4].GetDrawRect(), var2)) {
  63.                this.RemoveAnimObject(var4);
  64.                --var4;
  65.             }
  66.          }
  67.       }
  68.  
  69.    }
  70.  
  71.    public long GetLoopStartTime() {
  72.       return this.m_lLoopStartTime;
  73.    }
  74. }
  75.